/************************************************************************
*************************************************************************
@Name :       	QapTcha - jQuery Plugin
@Revison :    	2.5
@Date : 		26/01/2011
@Author:     	 Surrel Mickael (www.myjqueryplugins.com - www.msconcept.fr) 
@License :		 Open Source - MIT License : http://www.opensource.org/licenses/mit-license.php
 
**************************************************************************
*************************************************************************/
jQuery.QapTcha = {
    build : function(options)
    {
        var defaults = {
            txtLock : 'Arraste pra direita para destravar',
            txtUnlock : 'O formulário pode ser enviado!'
        };   
		
        if(this.length>0)
            return jQuery(this).each(function(i) {
                /** Vars **/
                var
                opts = jQuery.extend(defaults, options),
                $this = jQuery(this),
                form = jQuery('form').has($this),
                Clr = jQuery('<div>',{
                    'class':'clr'
                }),
                bgSlider = jQuery('<div>',{
                    id:'bgSlider'
                }),
                Slider = jQuery('<div>',{
                    id:'Slider'
                }),
                Icons = jQuery('<div>',{
                    id:'Icons'
                }),
                TxtStatus = jQuery('<div>',{
                    id:'TxtStatus',
                    'class':'dropError',
                    text:opts.txtLock
                }),
                inputQapTcha = jQuery('<input>',{
                    name:'iQapTcha',
                    value:generatePass(),
                    type:'hidden'
                });
			
                /** Disabled submit button **/
                //form.find('input[type=\'submit\']').attr('disabled','disabled');
                form.find('div[id=\'btnQaptcha\']').attr('style','display:none;');
                form.find('a[class=\'btnQaptcha\']').attr('style','display:none;');

                /** Construct DOM **/
                bgSlider.appendTo($this);
                Icons.insertAfter(bgSlider);
                Clr.insertAfter(Icons);
                TxtStatus.insertAfter(Clr);
                inputQapTcha.appendTo($this);
                Slider.appendTo(bgSlider);
                $this.show();
			
                Slider.draggable({
                    containment: bgSlider,
                    axis:'x',
                    stop: function(event,ui){
                        if(ui.position.left > 150)
                        {
                            Slider.draggable('disable').css('cursor','default');
                            inputQapTcha.val("");
                            TxtStatus.text(opts.txtUnlock).addClass('dropSuccess').removeClass('dropError');
                            Icons.css('background-position', '-16px 0');
                            //form.find('input[type=\'submit\']').removeAttr('disabled');
                            form.find('div[id=\'btnQaptcha\']').attr('style','display:block;');
                            form.find('a[class=\'btnQaptcha\']').attr('style','display:block;');

                        //                            // set the SESSION iQaptcha in PHP file
                        //                            $.post("captcha.php",{
                        //                                action : 'qaptcha'
                        //                            },
                        //                            function(data) {
                        //                                if(!data.error)
                        //                                {
                        //                                    Slider.draggable('disable').css('cursor','default');
                        //                                    inputQapTcha.val("");
                        //                                    TxtStatus.text(opts.txtUnlock).addClass('dropSuccess').removeClass('dropError');
                        //                                    Icons.css('background-position', '-16px 0');
                        //                                    //form.find('input[type=\'submit\']').removeAttr('disabled');
                        //                                    form.find('a[class=\'btnQaptcha\']').attr('style','display:block;');
                        //                                }
                        //                            },'json');
                        }
                    }
                });
			
                function generatePass() {
                    var chars = 'azertyupqsdfghjkmwxcvbn23456789AZERTYUPQSDFGHJKMWXCVBN';
                    var pass = '';
                    for(i=0;i<10;i++){
                        var wpos = Math.round(Math.random()*chars.length);
                        pass += chars.substring(wpos,wpos+1);
                    }
                    return pass;
                }
			
            });
    }
};
jQuery.fn.QapTcha = jQuery.QapTcha.build;